#ifndef __MESSAGE_H__
#define __MESSAGE_H__

#include <iostream>
#include "util.hpp"
#include "level.hpp"
#include <thread>
#include <string>

//日志消息类//

// 1.日志的输出时间
// 2.日志等级
// 3.原文件名称
// 4.源代码行号
// 5.线程ID
// 6.日志的主体信息
// 7.日志器名称

namespace lyzlog
{
    struct LogMsg
    {
        time_t _ctime;          // 1.日志的输出时间
        Loglevel::value _value; // 2.日志等级
        std::string _file;      // 3.原文件名称
        size_t _line;           // 4.源代码行号
        std::thread::id _tid;   // 5.线程ID
        std::string _payload;   // 6.日志的主体信息
        std::string _logger;    // 7.日志器名称

        LogMsg(Loglevel::value value,
               const std::string file,
               size_t line,
               std::string logger,
               std::string msg
               )
            : _ctime(util::Date::now()),
              _value(value),
              _file(file),
              _line(line),
              _tid(std::this_thread::get_id()),
              _payload(msg),
              _logger(logger)
        {
        }
    };
}

#endif
